﻿Imports System.Data.SqlClient
Public Class frmActualizarPaciente
    Public RnpPaciente As String
    Dim paciente As String
    Private Sub frmActualizarPaciente_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: esta línea de código carga datos en la tabla 'LabCDMDataSet.Tipo_Paciente' Puede moverla o quitarla según sea necesario.
        Me.Tipo_PacienteTableAdapter.Fill(Me.LabCDMDataSet.Tipo_Paciente)
        'TODO: esta línea de código carga datos en la tabla 'LabCDMDataSet.Sexo' Puede moverla o quitarla según sea necesario.
        Me.SexoTableAdapter.Fill(Me.LabCDMDataSet.Sexo)
        'TODO: esta línea de código carga datos en la tabla 'LabCDMDataSet.Paciente' Puede moverla o quitarla según sea necesario.
        Me.PacienteTableAdapter.Fill(Me.LabCDMDataSet.Paciente)
        If RnpPaciente <> Nothing Then
            Me.cboFiltroPaciente.EditValue = RnpPaciente
        End If
    End Sub

    Private Sub btnFiltrar_Click(sender As Object, e As EventArgs) Handles btnFiltrar.Click
        ObtenerDatos()
    End Sub

    Private Sub btnCerrar_Click(sender As Object, e As EventArgs) Handles btnCerrar.Click
        Me.Dispose()
        Me.Close()
    End Sub

    Private Sub btnActualizar_Click(sender As Object, e As EventArgs) Handles btnActualizar.Click
        Dim telefono As String
        Dim codigoPaciente As String
        If Me.txtTelefono.EditValue IsNot Nothing Then
            telefono = Me.txtTelefono.EditValue.ToString
        Else
            telefono = " "
        End If
        If Me.txtIdentidad.EditValue IsNot Nothing Then
            codigoPaciente = Me.txtIdentidad.EditValue.ToString
        Else
            codigoPaciente = " "
        End If
        Me.PacienteTableAdapter.SP_ActualizarPaciente(Me.txtNombres.EditValue.ToString, Me.txtApellidos.EditValue.ToString, Me.dtpFechaNacimiento.DateTime, CInt(Me.cboSexo.EditValue), telefono, CInt(Me.cboTipoPaciente.EditValue), codigoPaciente, paciente)
        MessageBox.Show("Se ha acutalizado correctamente la información del paciente.", varTitulo, MessageBoxButtons.OK, MessageBoxIcon.Information)

        Me.Dispose()
        Me.Close()
    End Sub

    Private Sub cboFiltroPaciente_EditValueChanged(sender As Object, e As EventArgs) Handles cboFiltroPaciente.EditValueChanged
        ObtenerDatos()
    End Sub

    Private Async Sub ObtenerDatos()
        Try
            If varConexion.State = ConnectionState.Open Then
                varConexion.Close()
            End If
            Await varConexion.OpenAsync()

            Dim sqlFiltro As String = String.Format("SELECT * FROM Paciente WHERE Rnp_Paciente = '{0}'", Me.cboFiltroPaciente.EditValue)
            Dim cmd As New SqlCommand(sqlFiltro, varConexion)
            Dim reader As SqlDataReader = Await cmd.ExecuteReaderAsync()

            If Await reader.ReadAsync() Then
                paciente = CStr(reader.Item("Rnp_Paciente"))
                Me.txtIdentidad.EditValue = reader.Item("Rnp_Paciente2")
                Me.txtNombres.EditValue = reader.Item("Nombres")
                Me.txtApellidos.EditValue = reader.Item("Apellidos")
                Me.txtTelefono.EditValue = reader.Item("Telefono")
                Me.cboSexo.EditValue = reader.Item("Id_Sexo")
                Me.cboTipoPaciente.EditValue = reader.Item("Id_Tipo_Paciente")
                Me.dtpFechaNacimiento.DateTime = CDate(reader.Item("Fecha_Nacimiento"))
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class